1 module defs; 2 3 struct OGLFunctionFamily { 4 string fromFilename; 5 string familyOfFunction; 6 7 string copyright; 8 9 OGLFunction[] functions; 10 OGLIntroducedIn introducedIn; 11 12 OGLParameter[] docs_parameters; 13 OGLDocumentation docs_description = OGLDocumentation(OGLDocumentationType.Container); 14 OGLDocumentation docs_notes = OGLDocumentation(OGLDocumentationType.Container); 15 OGLDocumentation docs_seealso = OGLDocumentation(OGLDocumentationType.Container); 16 OGLDocumentation docs_copyright = OGLDocumentation(OGLDocumentationType.Container); 17 OGLDocumentation docs_errors = OGLDocumentation(OGLDocumentationType.Container); 18 } 19 20 struct OGLFunction { 21 string returnType; 22 string name; 23 24 string[] argTypes; 25 string[] argNames; 26 27 OGLIntroducedIn introducedIn; 28 string introducedInExtension; 29 } 30 31 struct OGLParameter { 32 string[] appliesToNames; 33 OGLDocumentation documentation = OGLDocumentation(OGLDocumentationType.Container); 34 } 35 36 enum OGLIntroducedIn : ushort { 37 Unknown, 38 V1P0 = 10, 39 V1P1 = 11, 40 V1P2 = 12, 41 V1P3 = 13, 42 V1P4 = 14, 43 V1P5 = 15, 44 V2P0 = 25, 45 V2P1 = 21, 46 V2P2 = 22, 47 V3P0 = 30, 48 V3P1 = 31, 49 V3P2 = 32, 50 V3P3 = 33, 51 V4P0 = 40, 52 V4P1 = 41, 53 V4P2 = 42, 54 V4P3 = 43, 55 V4P4 = 44, 56 V4P5 = 45, 57 } 58 59 enum OGLDocumentationType { 60 Unknown, 61 Paragraph, 62 Text, 63 Title, 64 Container, 65 66 LookupParameter, 67 LookupConstant, 68 LookupFunction, 69 70 TableContainer, 71 TableHeader, 72 TableBody, 73 TableRow, 74 TableEntry, 75 76 IndexList, 77 IndexItem, 78 List, 79 ListItem, 80 81 StyleContainer, 82 StyleCode, 83 StyleSuperScript, 84 StyleSubScript, 85 86 Footnote, 87 InlineEquation, 88 Trademark, 89 Copyright, 90 Link, 91 92 MathMLContainer, 93 MathML_MI, 94 MathML_mfenced, 95 MathML_mn, 96 MathML_mrow, 97 MathML_msup, 98 MathML_mo, 99 MathML_msub, 100 MathML_mfrac, 101 MathML_mtable, 102 MathML_mtr, 103 MathML_mtd, 104 MathML_mspace, 105 MathML_mtext, 106 MathML_apply, 107 MathML_floor, 108 MathML_csymbol, 109 MathML_infinity, 110 MathML_mover, 111 MathML_munderover, 112 MathML_msqrt 113 } 114 115 struct OGLDocumentation { 116 OGLDocumentationType type; 117 118 string value_string, value_string2; 119 OGLDocumentation[] value_children; 120 int value_numcols; 121 } 122 123 struct OGLEnumGroup { 124 string name; 125 bool isBitmask; 126 OGLEnum[] enums; 127 } 128 129 struct OGLEnum { 130 string name; 131 string value; 132 }